package com.example.walled_houses.config;

import com.example.walled_houses.utils.LoginInterceptor;
import com.example.walled_houses.utils.RefreshTokenInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import javax.annotation.Resource;


@Configuration
public class MvcConfig implements WebMvcConfigurer {
    @Resource
    private StringRedisTemplate stringRedisTemplate;

    public void addInterceptors(InterceptorRegistry registry) {
        // TODO 登录拦截器
        registry.addInterceptor(new LoginInterceptor())
                .addPathPatterns("/user/**","/reservation/**","/opinion/**","/house/**")
                .excludePathPatterns(
                        "/user/login",
                        "/doc.html"
                ).order(1);
        // 调整拦截器的执行顺序（值越大越后执行）
        // token刷新拦截器
        registry.addInterceptor(new RefreshTokenInterceptor(stringRedisTemplate)).addPathPatterns("/**")
                .order(0);
    }
}
